import Vue from 'vue';
import Vuex from 'vuex';
import createPersistedstate from 'vuex-persistedstate';
Vue.use(Vuex);

/**
 * 使用Webpack提供的require.context方法来创建一个上下文模块，它的作用是动态地导入符合特定条件的模块
 * @param {*}   ./modules表示要搜索的目录路径，相对于当前文件所在的目录
 * @param {*}  false表示是否搜索子目录，这里设置为false表示只搜索./modules目录，不搜索其子目录
 * @param {*}  /\ .js$/是一个正则表达式，用于匹配文件路径。这里表示只匹配以.js结尾的文件
 */
const files = require.context('./modules', false, /\.js$/);
const modules = {};

files.keys().forEach((key) => {
  modules[key.replace(/(\.\/|\.js)/g, '')] = files(key).default;
});

const store = new Vuex.Store({
  modules,
});

export default store;
